home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
United Public Domain Gold 2
/
United Public Domain Gold 2.iso
/
utilities
/
pu143.dms
/
pu143.adf
/
FIXDISK.DOC
/
FIXDISK.DOC
Wrap
Text File
|
1997-10-19
|
11KB
|
248 lines
FixDisk V1.0
© Copyright Werner Gunther 1989
Freeware
USE THIS PROGRAM AT YOUR OWN RISK
FixDisk is a program to recover as much as possible from a defective
disk. I don't claim it is better than DiskDoctor or DiskSalv, but it
has some features the others don't have: First of all it can recover
damaged (unreadable) tracks, it has functions to check file integrity,
to check the directory structure and functions to undelete, copy or
show (even defective) files, fix corrupted directory pointers, etc.
Everything can be selected with an intuition interface, so everyone
can determine what action should take place by himself.
Now the bad news: The program does not keep track of "loose blocks",
i.e. files without a file header - like DiskSalv does. It does only
work with disks and partitions using a maximum of 4063 blocks. It may
work with larger disks too, but I don't have a hard disk, so I
couldn't test it.
Disks with more than 4063 blocks are rejected by the program. You may
force the program to accept <48 Mb partitions adding DOOM to the
command line (i.e. FixDisk doom). As I said before, it has not been
tested and should only be used if anything else failed, and you're
just about to format the partition.
USAGE:
After starting FixDisk from Cli or Workbench you will see a set of
gadgets with the available drives on the top of the window. Choose the
desired drive by clicking its gadget. If the choosen drive is a 3.5in
or a 5.25in drive you will be asked to insert a disk. Now the program
starts to read in the disk, cylinder by cylinder, searching for file
and directory headers. This may take a while, please be patient.
Beside read errors, you may get some other messages at this point:
Block 0 has to start with DOS or KICK. If it does not, you are asked
if you want to fix it.
The program couldn't find the root block and FixDisk wants to build a
new one.
The disk isn't validated, the program is going to validate it.
There is no root block and no file header on the disk. The disk is
probably a custom disk or the Kickstart disk. FixDisk won't check
anything - and won't let you check, change or fix anything - except
read errors.
You may press break Ctrl-C anytime if you want to abort this
operation. When the disk has been examined, you'll get a file
requester on the left half of the window. The first column shows the
key (the block number where the file header has been found) followed
by DEL for deleted files or -->, followed by the filename. Red (Color
3) entries are directories. Click on the filename to select it or
Shift-click for multiple selections. Double click a directory to enter
that directory.
The right half of the window is filled with 17 Gadgets. As you will
notice, some of them are disabled at startup. These are gadgets that
will write on to the disk. To enable them you have to choose Write
Enable from the Miscellaneous menu (there is only one menu anyway).
THE GADGETS
DIRECTORY - Parent
This gadget is part of the file requester. The requester will show
the files from the parent directory.
DIRECTORY - Root
Same as above, but steps to the root directory.
SHOW - Selected
Shows a file in Hex or Ascii. Like all other commands, the file is
processed without using DOS, but each sector (block) is read in,
checked and displayed. It works exactly the same way Copy (see below)
would do, so you can use this function to see what exactly can be
recovered from a defective file. If the file is on a Standard File
System (non FFS) disk, you will be asked where the program should take
the file links from. Each block that belongs to a file is listed in
the file header block (and in one or more "file list blocks" if the
file is too large). On the Standard File System each data block has a
pointer to the next block belonging to the same file, too. So we have
two ways to determine how the file is build up: Using the links listed
in the file header, or using the inter-block links. Anyway, it is much
safer if you select the file header links, if only one block is wrong,
you'll get a lot of rubbish using the inter-block links.
CHECK FILES - Selected
This function checks the selected files. With the Standard File System
it is very easy to determine if a file is OK or defective, as each
data block has a checksum, a pointer to the file header, pointer to
the next block, etc. This is not the case with the FFS and there is no
way to determine if a given data block really belongs to that file.
So, even if the file passes the test, it may still be corrupted.
CHECK FILES - Deleted
Checks only deleted files, so you can see which one can be undeleted.
CHECK FILES - All
Checks all files.
UNDELETE FILES - Selected
The first thing this function does, is call Check Files. If the file
seems to be OK, the file header is inserted into the hash chain of its
parent directory and the bitmap will be updated, but the Bitmap Flag
will change to FALSE, just to make sure the disk is going to be
validated after this operation.
UNDELETE FILES - All
Tries to undelete all deleted files.
COPY FILES - Selected
Works like Show (see above). You'll be asked to enter a output path or
directory. If the directory gets full, you may enter a new path. If a
given file already exists in the destination directory, the program
will append ".2" to the filename. If ".2" exists too, you'll get
".2.2". Don't tell me this is dumb, I know that already.
Like Check File you may get some error messages while the program is
working. If a block doesn't seem to belong to a given file, you'll be
asked to SKIP IGNORE ABORT. Skip means the damaged block won't be
copied, Ignore means the block will be copied no matter what is on
that block, and Abort leaves Copy Files. Protection bits are
preserved, dates are not.
COPY FILES - All
Copies the entire disk, trying to recover as much as possible.
WIPE FILES - Selected
This function clears the file header of a deleted file. Utilities like
DiskDoctor and DiskSalv will try to recover all files, even if they
have been deleted. If you don't want some files to pop up again using
one of the programs above, you may use this function. Be warned: After
this operation you'll have to use a disk monitor or sector editor to
get the data back.
WIPE FILES - All
Purges all deleted files.
DELETE - Selected
Deletes a file, i.e. the file header will be taken out of its hash
chain and the bitmap updated. The Bitmap Flag will be set to FALSE as
in Undelete (see above). This function even works if the DOS delete
does return an error.
DELETE - Faulty
Checks all files and deletes those with errors. The program may ask
you before deleting a file, if you wish.
INFO - Device
Returns some information about the selected device.
VALIDATE - Disk
This is not the Amiga validator, but my own. The main difference
between them is that this one tries to repair the disk structure. You
may get some error reports: Loops in a hash chain, wrong or unreadable
file headers, checksum errors or Key Already Set, two files claiming
to own the same data block. The usual action that takes place is to
ask you if the corrupted file may be deleted. You may check what
exactly was wrong using Show and Check Files afterwards.
RECOVER - Track
This function tries to get as much as possible from a defective track.
It uses the RAWREAD command from the trackdisk.device and therefore
works with the trackdisk.device only. What it actually does, is to
RAWREAD the track into a buffer, search the syncs, and decode the
sector. This may take some seconds, the routine to decode isn't very
fast.
If a sector sync is missing, the program tries to determine where the
sector has to start. This works sometimes, but is usually wrong.
When the track has been decoded, you'll get a window displaying the
number of the sector (1-11), the first four longwords of that sector,
if the checksum is OK or BAD, and if that block is ALLOCated or FREE.
If an entry is red (color 3), the sector didn't have a sync. If,
instead of the first few bytes, you get Unreadable, the program
couldn't even work out where the sector should have been.
If you are not satisfied with the result, you may click RETRY. This
will restart the procedure and usually gives a different result (if
the track has a hard error, i.e. a damaged surface).
If you think the result is good (or good enough) click on WRITE. This
will format the track and write those sectors back.
It may happen that the track can't be formatted. Click RETRY several
times, the defective part of the track may "fall" into the gap at some
point. If this doesn't seem to work, pull out the disk and insert a
new, EMPTY, even unformatted, disk and write the track on this disk.
Now comes the tricky part: Back-up the original disk and copy the
recovered track to the back-up with DiskZap, DiskX, Sectorama, etc.
Hmmm... No, much too complicated. The Amiga is a multitasking machine!
Back-up the disk WHILE FixDisk is running, insert the back-up into the
drive you have selected and click RETRY.
THE MENU
There are actually only two menu items:
Ignore Readerrors:
Usually you get a requester asking RETRY IGNORE if an error occurs.
This may be very annoying if the disk has a lot of defective tracks.
This item will stop that requester popping up. It has also a second
function: If you are using the Copy function, the program will stop
every time a file seems to be damaged and ask what action should be
taken. With Ignore Readerrors on, errors are just listed, but the
program will act as if you have choosen IGNORE.
Write Enable:
Enables those gadgets that will write on to the disk.
That's all. Well, almost. The program has about 80 requesters, some of
them have not been explained, but they should be self-explanatory.
Send flames, bug reports, requests to:
G35@DHDURZ1.BITNET
Werner Gunther
Wingertspfad 12
D 6900 Heidelberg (FRG)